package com.easygem.business.service;

import com.easygem.business.mapper.SysNoticeMapper;
import com.easygem.business.service.base.IBaseService;
import com.easygem.common.error.SystemException;
import com.easygem.common.model.business.SysNotice;
import com.easygem.common.vo.business.SysNoticeVO;
import com.easygem.common.vo.system.PageVO;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;

/**
 * @author 文晓平
 * @version 1.0
 * @Description 系统通知业务层
 * @date 2024/12/21 0:19
 */
public interface SysNoticeService extends IBaseService<SysNoticeMapper, SysNotice, Integer> {
    PageVO<SysNotice> findList(Integer pageNum, Integer pageSize, SysNoticeVO sysNoticeVO);

    /**
     * 添加系统通知
     * @param sysNoticeVO
     */
    void add(SysNoticeVO sysNoticeVO);

    /**
     * 编辑通知
     * @param id
     * @return
     */
    SysNoticeVO edit(Integer id) throws SystemException;

    /**
     * 更新通知
     * @param id
     * @param sysNoticeVO
     */
    void update(Integer id, SysNoticeVO sysNoticeVO) throws SystemException;

    /**
     * 删除通知
     * @param id
     */
    void delete(Integer id) throws SystemException;

    /**
     * 删除多个通知
     * @param map  多个id
     * @throws SystemException
     */
    void deleteMore(Map<String, Object> map) throws SystemException;

    /**
     * 所有系统通知
     * @return
     */
    List<SysNoticeVO> findAllVO();


    /**
     * 全部系统信息
     * @return
     */
    List<SysNotice> findAll();

    /**
     * 根据用户id查询出系统通知
     * @return
     */
    List<SysNoticeVO> selectByUserId();

    /**
     * 添加是否已读系统通知
     * @param noticeId 系统通知id
     * @return
     */
    int addSysNoticeIs(@Param("noticeId") Long noticeId);
}
